[Looker]dimension groupで作られる時間系のフィールドの表記を変更してみた #looker
さがらです。
Lookerではdimension group
を使うことで、月や日など、時間系のフィールドを簡単かつまとめて作成することが出来ます。
しかし、dimension group
で作られるフィールドは英語表記であり、馴染みのないビジネスユーザーからすると「MonthとMonth Numって何が違うの?」となってしまう可能性も0ではないと思います。
そこで、時間系のフィールドの表記をどうにか変更できないか試してみたので、本エントリでまとめてみます。
通常のdimension group
まず振り返りも兼ねて、通常のdimension groupの場合はどう作られるのか確認します。
下記のようにdimension_groupというパラメータで定義して、timeframes
パラメータ内で必要な粒度の名称を書くだけで、時間系のフィールドがまとめて定義が出来るものですね。
dimension_group: created { type: time timeframes: [ raw, time, hour_of_day, date, day_of_week, day_of_week_index, day_of_month, day_of_year, week, week_of_year, month, month_name, month_num, quarter, year ] sql: ${TABLE}.created_at ;; convert_tz: no }
どうやってdimension groupの表記を変更するのか?
さて本題です。どうやってdimension group
の各フィールドの表記を変えるのか?
…方法は、「自力で定義する」しかありません。
ということで自力で時間系のdimension group
を定義する方法を説明します。
自力で定義する方法
直球ですが下記LookMLのように、書けばOKです。サンプルとして、2つのdimensionを定義しています。
dimension: created_month{ group_label: "created_お手製" group_item_label: "年月(YYYY-MM)" type: date_month sql: ${TABLE}.created_at ;; } dimension: created_month_num{ group_label: "created_お手製" group_item_label: "月(MM)" type: date_month_num sql: ${TABLE}.created_at ;; }
ポイントとしては、以下4点が挙げられます。
group_label
パラメータで関連する時間系フィールドに共通する名称をつけること(例:レコード更新時刻、など)group_item_label
パラメータで、対象のExploreを使用するユーザーにとってわかりやすい名称をつけることtype
パラメータで、必要な値だけを取得できるようなtypeを指定すること- typeについては公式Docも参考にしてください。基本的にdimension_groupで定義できるtimeframesと同じものは一通りあるはずです。
- (※任意)各dimensionの名称は、
created_month_num
のようにdimension_groupで定義するtimeframesと同じものとすること- これにより通常のdimension_groupと同じように置換演算子で参照できます。
最後に
デフォルトの英語表記そのままの方がLookMLの記述量も減りますし可読性の向上にも繋がるのですが、Lookerを使う上ではビジネスユーザーに疑問を抱くことなくスムーズにExplore使ってほしい、と私は考えています!
全Lookerユーザーに推奨するような内容ではないですが、ビジネスユーザーから「使い方がわからん」と投げ出されてしまうくらいならば、こういった方法でフォローしてあげることも1つの手かと思います。
少しでも参考になれば幸いです。